﻿using EFAPIProject.Entities;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore;

namespace EFAPIProject.Data.Configurations
{
    public class OrderConfiguration : IEntityTypeConfiguration<Order>
    {
        public void Configure(EntityTypeBuilder<Order> builder)
        {
            // 表名
            builder.ToTable("Orders");

            // 主键
            builder.HasKey(o => o.OrderId);

            // 自增列
            builder.Property(o => o.OrderId).ValueGeneratedOnAdd();

            // OrderNo：非空，唯一
            builder.Property(o => o.OrderNo)
                .IsRequired()
                .HasMaxLength(20);
            builder.HasIndex(o => o.OrderNo).IsUnique();

            // TotalAmount：精度设置（例如 decimal(18,2)）
            builder.Property(o => o.TotalAmount)
                .HasPrecision(18, 2);

            // 外键关联（Order -> User）
            builder.HasOne<User>()
                .WithMany() // 假设User对Order是一对多关系（User可省略ICollection<Order>）
                .HasForeignKey(o => o.UserId)
                .OnDelete(DeleteBehavior.Cascade); // 级联删除
        }
    }
}
